const mysql = require('mysql');

const dbConfig = {
   host: 'mysql',    // 数据库地址
   user: 'root',         // 用户名
   password: 'root',     // 密码
   database: 'db_film',  // 数据库名
   connectionLimit: 10,  // 设置最大连接数
   acquireTimeout: 10000, // 连接超时时间
   connectTimeout: 10000, // 连接超时时间
   waitForConnections: true, // 等待连接
   queueLimit: 0         // 队列限制
};

let conn;

function handleDisconnect () {
   conn = mysql.createConnection(dbConfig);

   conn.connect(function (err) {
      if (err) {
         console.error('Error when connecting to db:', err);
         setTimeout(handleDisconnect, 2000); // 2秒后重试连接
      }
   });

   conn.on('error', function (err) {
      console.error('DB error', err);
      if (err.code === 'PROTOCOL_CONNECTION_LOST') {
         handleDisconnect(); // 重新连接
      } else {
         throw err;
      }
   });
}

handleDisconnect();

module.exports = conn;